/* ========================================================================= */
/* ------------------------------------------------------------------------- */
/*!
  \file			prpex_double.cc
  \date			june 2011
  \author		TNick

  \brief		string class


 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Please read ReadMe.txt and Licence.txt in root folder
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


*/
/* ------------------------------------------------------------------------- */
/* ========================================================================= */
//
//
//
//
/*  INCLUDES    ------------------------------------------------------------ */

#include	<QDoubleSpinBox>

#include	"prpmdl.h"
	#include	"prpex_double.h"

/*  INCLUDES    ============================================================ */
//
//
//
//
/*  FUNCTIONS    ----------------------------------------------------------- */

/* ------------------------------------------------------------------------- */
QWidget*	PEX_Dbl::editCreate	(QWidget *parent, const QStyleOptionViewItem &option)
{
	Q_UNUSED(option);
	QDoubleSpinBox *editor = new QDoubleSpinBox(parent);
	editor->setMinimum(dbl_low);
	editor->setMaximum(dbl_high);
	if (dbl_step == 0) dbl_step = 1;
	editor->setSingleStep(dbl_step);

	return editor;
}
/* ========================================================================= */

/* ------------------------------------------------------------------------- */
void		PEX_Dbl::editLoad	(QWidget *editor)
{
	QDoubleSpinBox *dsb = static_cast<QDoubleSpinBox*>(editor);
	dsb->setValue(dbl_value);
}
/* ========================================================================= */

/* ------------------------------------------------------------------------- */
void		PEX_Dbl::editSave	(QWidget *editor)
{
	QDoubleSpinBox *dsb = static_cast<QDoubleSpinBox*>(editor);
	dbl_value = dsb->value();
	informParent();
}
/* ========================================================================= */

/* ------------------------------------------------------------------------- */
bool		PEX_Dbl::changeVal	(QVariant new_value)
{

	if (new_value.canConvert<double>())
	{
		if (new_value.convert(QVariant::Double))
		{
			dbl_value = new_value.toDouble();
			informParent();
			return true;
		}
	}
	return false;
}
/* ========================================================================= */

/*  FUNCTIONS    =========================================================== */
//
//
//
//
/* ------------------------------------------------------------------------- */
/* ========================================================================= */
